package com.wzcl.app.service;

import com.wzcl.app.dao.model.EssayCourseCatalog;
import com.wzcl.app.dao.model.EssayCourseQuestionBank;
import com.wzcl.app.model.common.RVO;
import com.wzcl.app.model.dto.CatalogReportDto;
import com.wzcl.app.model.dto.EssayCourseCatalogDto;

import java.util.List;

public interface EssayCourseCatalogService {
    /**
     * 创建作文课章节
     * @param essayCourseCatalogDto 作文课章节对象
     * @return 返回添加的课程章节
     */
    RVO createCatalog(EssayCourseCatalogDto essayCourseCatalogDto) throws InterruptedException;

    /**
     * 根据id删除作文课章节
     * @param id 章节id
     */
    void deleteCatalog(Integer id);

    /**
     * 查询当前作文课课程下的所有章节
     * @param courseId 课程表id
     * @return 返回当前作文课下的所有章节
     */
    List<EssayCourseCatalog> retrieveAll(Integer courseId);

    /**
     * 统计章节星星
     * @param catalogId 章节id
     * @return 返回章节星星
     */
    RVO getCatalogStar(Integer catalogId);

    /**
     * 生成学习报告
     * @return 返回学习报告数据
     */
    CatalogReportDto generateCatalogReport(Integer catalogId);

    /**
     * 查询当前章节下的错题解析
     * @param catalogId 章节id
     * @return 返回当前章节下的所有错题解析
     */
    List<EssayCourseQuestionBank> retrieveAnalysisByCatalogId(Integer catalogId);
}
